package algorithm_demo.demo05;

/**
 *
 * 暴力递归到动态规划的套路
 * 1. 你已经有了一个不违反原则的暴力递归，而且的确存在解的重复调用
 * 2. 找到哪些参数的变化会影响返回值，对每一个列出变化范围
 * 3. 参数间的所有的组合数量，意味着表大小
 * 4. 记忆化搜索的方式就是啥缓存，非常容易得到
 * 5. 规定好严格表的大小，分析位置的依赖顺序，然后从基础填写到最终解
 * 6. 对于有枚举行为的决策过程，进一步优化
 * @author Api
 * @date 2023/3/21 0:41
 */
public class Code13 {

   /*
    * 给定一个字符串str，给定一个字符串类型的数组arr。
    * arr里的每一个字符串，代表一张贴纸，你可以把单个字符剪开使用，目的是拼出str来。
    * 返回需要至少多少章贴纸可以完成这个任务。
    * 例子：str="babac", arr={"ba","c","abcd"}
    * 至少需要两张贴纸"ba"和"abcd"，因为使用这两张贴张，把每一个字符单独剪开，
    * 含有2个a，2个b，1个c。是可以拼出str的。所以返回2
    */
//    public static int minStick(String rest, String[] arr){
//        if (rest.equals("")){
//            return 0;
//        }
//        //搞定rest的第一张贴纸是什么
//        for(String first: arr){
//
//        }
//    }


}
